package leetcode3;
import java.util.*;

public class Day14 {


    /**
     * 扑克牌顺子
     * @param numbers
     * @return
     */
    public boolean IsContinuous (int[] numbers) {
        // write code here
        Arrays.sort(numbers);
        int min=14,max=-1;
        int k=0;//记录0的个数
        for(int i=0;i<numbers.length;i++) {
            if(numbers[i]==0) k++;
            else if(i!=0 && numbers[i]==numbers[i-1]) return false;
            if(numbers[i]!=0 && numbers[i]<min) min = numbers[i];
            if(numbers[i]!=0 && numbers[i]>max) max = numbers[i];
        }
        if(max - min > 4) return false;
        return true;
    }

    /**
     * 跳台阶
     * @param number
     * @return
     */

    public int jumpFloor (int number) {
        // write code here
        //dp[i]:到达i级台阶可以有的跳法,dp[0]=0,dp[1]=1,dp[2]=2,dp[3]=
        if(number<3) return number;
        int[] dp = new int[number+1];
        dp[1]=1;dp[2]=2;
        for(int i=3;i<=number;i++) {
            dp[i]=dp[i-1]+dp[i-2];
        }
        return dp[number];
    }




    /**
     * 添加逗号
     * @param args
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            int N = in.nextInt();
            StringBuilder sb = new StringBuilder();
            int k=0;//记录添加了多少位，判断是否需要添加逗号
            while(N!=0) {
                int ch = N % 10;
                N /= 10;
                sb.append((char)(ch+'0'));
                k++;
                if(k%3==0 && N!=0) {
                    sb.append(',');
                }
            }
            System.out.println(sb.reverse().toString());
        }
    }

    /**
     * 收集字母
     * @param args
     */
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            //1.输入n,m
            int n = in.nextInt();
            int m = in.nextInt();
            char[][] arr = new char[n][m];
            //2.输入n行字符串
            String[] strs = new String[n];
            for(int i=0;i<n;i++) {
                strs[i] = in.next();
            }
            for(int i=0;i<n;i++) {
                for(int j=0;j<m;j++) {
                    arr[i][j] = strs[i].charAt(j);
                }
            }

            int[][] dp = new int[n][m]; //到达dp[i][j]的最大分数
            Map<Character,Integer> map = new HashMap<>();
            map.put('l',4);
            map.put('o',3);
            map.put('v',2);
            map.put('e',1);
            dp[0][0] = map.getOrDefault(arr[0][0],0);
            for(int i=1;i<m;i++) dp[0][i] += dp[0][i-1]+map.getOrDefault(arr[0][i],0); //初始化第一行
            for(int i=1;i<n;i++) dp[i][0] += dp[i-1][0]+map.getOrDefault(arr[i][0],0); //初始化第一列
            for(int i=1;i<n;i++) {
                for(int j=1;j<m;j++) {
                    dp[i][j] = map.getOrDefault(arr[i][j],0) + Math.max(dp[i][j-1],dp[i-1][j]);
                }
            }
            System.out.println(dp[n-1][m-1]);
        }
    }
}
